One of the primary benefits of a Graphical User Interface (GUI) is the use of visual tools, or widgets, to select items such as applications, documents, folders and the like, as well as discrete points within such items. One such widget commonly used today is a “slider.” As shown in FIG. 1, a slider 102 usually consists of two parts: a finite “track,” 104 which is usually a horizontal or vertical area defining the full range of potential selections to which the track refers. The other part of a slider is the “thumb,” 106 which may take on different forms, but its main purpose is to select a single point on the finite track 104. A slider 102 allows a user to position the thumb 106 at any point along the track 104 such as to represent a relative point or amount in an application or file.
By using a slider as a GUI widget, certain actions may be taken. In one case, a video file may use a slider to allow the user to select a specific point in the video. In this case, the track would represent the entire running time of the video, and the thumb would be placed on the track in the approximate position where the desired selection lies. For example, the video may be ten minutes long. Usually, the length of the track does not change based on the length of the video, but the scale of the track changes. This means that a point one-tenth of the way from the beginning of the track of a ten-minute video represents the point existing at the one-minute section of the video.
The same video, this time ten hours long, will have the same length as the track for the ten-minute video, but a point one-tenth of the way from the beginning of the track of a ten-hour video represents the point existing at the one-hour section of the video. Therefore, the same unique point of a ten-minute track and a ten-hour track lie on the same point of the track, but represent different measures of time depending on the actual length of the video to which the slider is attached. In many cases, resizing the window containing the slider widget and the file to which it refers will change the physical size of the track, but the relative positions as described above remain the same. A drawback to the above approach is the lack of capability to select a range within the file or other element to which the slider refers. For example, the above approach does not provide a way to select a one-minute long portion of the entire video.
There exist techniques which use a slider widget to both select a point on a track and select a range on the same track. One such technique is illustrated in FIG. 2. The slider 202 in this example is used with a video file, although it may be applied to other types of files. One way this slider may be used is to select a point in the video, as above described. The track 206 again represents the entire running time of the video. The thumb 208 again represents a single point on the finite track 206. In this example, the placement of the thumb 208 represents the six-second mark of the video.
FIG. 2 also illustrates the same slider widget 204 used to select a point in the video and a finite range within the entire video. The thumb 210 again represents a single point on the finite track 212. In this example, however, there exist elements to select a range within the track 212. The range boundary indicators 214 serve to define a specific range of time within the entire video. In this example, the placement of the thumb 210 represents the forty-three second mark of the video, and the thumb lies within the section of the video defined by the range boundary indicators 214.
A drawback to the above approach is lack of the capability to slide the entire range as defined by the range boundary indicators 214. If a user decides to change the range of the selection, for example to increase or decrease the selected range or simply move the same “length” of the range to a different portion of the video, each range boundary indicator 214 must be moved separately. This is an inefficient use of a GUI widget, as a purpose of the widget is to reduce the amount of work required to accomplish the given task. Another drawback is that the thumb 210 must be moved in order to set the range. It is often not possible to select a range that does not include the thumb 210. Therefore, either the range is selected around the current thumb position or the thumb is moved to a point within the to-be-selected range. Again, this is an inefficient use of a GUI widget and only serves to increase the amount of work for a user.
While the prior approaches may occasionally serve the limited purpose of selecting a single point or a range, there exists a need for a technique that allows the selection of a point or range that does not suffer from the above-described shortcomings.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.